Skip to content

docs: documentation audit — fix license, env var gaps, skill install claims, and missing examples#1103

Draft
cursor[bot] wants to merge 6 commits into
mainfrom
cursor/sentry-cli-documentation-audit-dac7
Draft

docs: documentation audit — fix license, env var gaps, skill install claims, and missing examples#1103
cursor[bot] wants to merge 6 commits into
mainfrom
cursor/sentry-cli-documentation-audit-dac7

Conversation

@cursor

@cursor cursor Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Documentation Audit Report

Full cross-reference of documentation vs. implementation across the Sentry CLI codebase. Covers root docs, command docs/fragments, installation scripts, auth/config code, and the plugin/skills system.


Changes in this PR

File Fix
.craft.yml Corrected Homebrew formula license from FSL-1.1-MIT to FSL-1.1-Apache-2.0 (matches LICENSE.md and package.json)
docs/src/content/docs/agentic-usage.md Clarified that npm/pnpm/bun/yarn installs do NOT auto-run sentry cli setup — only curl and Homebrew do
docs/src/content/docs/library-usage.md Fixed Node.js version requirement from >=22 to >=22.15 (matches package.json engines)
docs/src/fragments/commands/proguard.md Added missing proguard upload examples (fragment only covered uuid)
plugins/README.md Updated repo structure diagram to show references/ directories (26 files) and clarified symlink vs copy semantics

Full Gap Report

A. Undocumented or Missing Commands/Subcommands

No structural gaps. All 26 visible top-level routes in src/app.ts have corresponding fragments in docs/src/fragments/commands/. Generated command docs cover every leaf command automatically from CLI metadata.

Hidden routes (dashboards, events, issues, send-event, send-envelope, bash-hook, whoami, plural aliases) are intentionally excluded from docs.

B. Undocumented Flags

No structural gaps in generated docs. Since command docs are generated from CLI introspection, all non-hidden flags appear automatically. Hidden flags (--verbose, --log-level, --org, --project) are intentionally suppressed.

Some fragments could be enriched with notes about less obvious flags:

  • auth login: --read-only, --scope, --timeout, --url are in generated docs but not called out in the auth.md fragment examples — users may not discover them
  • cli setup: --install, --method, --channel, --quiet are internal (used by install script/upgrade), correctly absent from fragment

C. Missing Usage Examples

Command Status Notes
proguard upload Fixed in this PR Fragment only had uuid examples
All other commands ✅ Covered Every fragment has bash examples

D. Stale Descriptions

No issues found. Command brief and fullDescription strings are the source of truth for generated docs, so they cannot drift. Fragment content is additive.

E. Missing Route Mappings in Skill Generator

Not applicable. ROUTE_TO_REFERENCE was replaced by an automatic 1:1 mapping in groupRoutesByReference() — every visible route produces its own references/{name}.md file. The help route is the only intentional exclusion.

F. Installation / Distribution Gaps

Finding Source Doc Severity
Homebrew formula license FSL-1.1-MIT vs actual FSL-1.1-Apache-2.0 .craft.yml line 41 LICENSE.md, package.json High — fixed
Install script --no-modify-path, --no-completions, --no-agent-skills flags install script Not in getting-started.mdx (documented in cli.md fragment) Low
SENTRY_INSTALL_DIR env var install script, setup.ts In env-registry (installOnly), generated configuration.md Low
SENTRY_INIT=1 post-install wizard install script In env-registry, generated configuration.md Low
musl/Alpine auto-install of libstdc++ install script Platform table says "musl (Alpine)" but doesn't document auto-install behavior Low
Nightly builds distributed via GHCR, not GitHub Releases install script, upgrade.ts Not explained in getting-started Info

G. Undocumented Environment Variables

The ENV_VAR_REGISTRY in src/lib/env-registry.ts is comprehensive and generates the configuration.md page. Variables in the registry (27 entries) are well-documented.

Variables referenced in code but NOT in the registry (intentionally internal):

Variable Where used Why not documented
SENTRY_SCAN_DISABLE_WORKERS DSN scanner Internal perf tuning
SENTRY_ENVIRONMENT bash-hook SDK convention, not CLI-specific
SENTRY_LAST_EVENT bash-hook generated script Internal to generated bash snippet
SENTRY_CLI_NO_EXIT_TRAP bash-hook Internal to generated bash snippet
SENTRY_MONITOR_SLUG monitor run child env Documented in monitor fragment
SENTRY_TRACES_SAMPLE_RATE local run child env SDK variable, set automatically
Framework-prefixed *_SENTRY_DSN DSN detection Framework convention, not CLI config
Framework-prefixed *_SENTRY_SPOTLIGHT local run child env SDK/framework convention

Assessment: No user-facing env vars are missing from the registry. Internal and SDK-convention variables are appropriately excluded.

H. Auth / Self-Hosted Gaps

Finding Source Doc Severity
Host-scoped trust model (login trust anchors, .sentryclirc URL rejection) src/lib/db/auth.ts, HostScopeError Not explained in self-hosted.md Medium
.sentryclirc auto-import middleware on not_authenticated src/lib/rc-import.ts Not mentioned in self-hosted.md or auth docs Low
SENTRY_CLIENT_ID_BUILD (build-time hardcoded SaaS client ID) src/lib/oauth.ts Not documented (internal) Info
--read-only and --scope on auth login for self-hosted login.ts In generated docs but not called out in self-hosted.md examples Low

I. Plugin / Skills Gaps

Finding Source Doc Severity
npm/pnpm/bun/yarn installs don't auto-run sentry cli setup package.json (no postinstall hook) agentic-usage.md implied all installs auto-install skills Medium — fixed
.cursor/skills/references/ are copies, not symlinks (can drift) Filesystem plugins/README.md omitted references dir Low — fixed
plugins/README.md repo diagram incomplete plugins/README.md Missing references/ in both .cursor/ and plugins/ trees Low — fixed
docs/public/.well-known/skills/ vs plugins/ sync not documented generate-skill.ts Undocumented sync mechanism Info

J. README / DEVELOPMENT.md Drift

Finding Source Doc Status
library-usage.md says Node >=22, should be >=22.15 package.json engines library-usage.md line 218 + comparison table Fixed
README uses pnpm commands, AGENTS.md uses bun commands Both files Intentional: pnpm for external contributors, bun for AI agents No action needed
DEVELOPMENT.md generated sections (dev-prereq, dev-env-vars, oauth-scopes, build-toolchain, dev-scripts) stay in sync via script/generate-docs-sections.ts Script Generated markers present ✅ Working correctly
README generated sections (library-prereq, dev-prereq, dev-scripts) same mechanism Script Generated markers present ✅ Working correctly

Top 5 Most Impactful Fixes (Prioritized)

  1. Homebrew license mismatch (.craft.yml) — Every Homebrew install advertises the wrong license. Legal/compliance risk. Fixed.

  2. Skill auto-install claim (agentic-usage.md) — Users installing via npm/pnpm/bun/yarn expect skills to "just work" based on the docs, then find they have no agent integration until they manually run sentry cli setup. Fixed.

  3. Node.js version in library-usage.md — Library consumers targeting Node 22.0–22.14 would hit runtime errors that the docs didn't warn about. Fixed.

  4. Host-scoped trust model undocumented (self-hosted.md) — Self-hosted users encounter HostScopeError when .sentryclirc URLs don't have matching trust anchors, with no documentation explaining the security model or how to resolve it. Recommended for follow-up.

  5. Proguard upload missing from fragment — Android developers using ProGuard/R8 mapping uploads had no examples or notes in the docs, only the uuid subcommand was covered. Fixed.

Open in Web View Automation 

cursoragent and others added 6 commits June 15, 2026 12:12
The Homebrew formula template in .craft.yml declared the license as
FSL-1.1-MIT, but the actual license (LICENSE.md, package.json, README)
is FSL-1.1-Apache-2.0.

Co-authored-by: Miguel Betegón <miguelbetegongarcia@gmail.com>
The agentic-usage page implied that package manager installs (npm, pnpm,
bun, yarn) automatically install agent skills. In reality, only curl and
Homebrew installs run sentry cli setup automatically — npm has no
postinstall hook.

Co-authored-by: Miguel Betegón <miguelbetegongarcia@gmail.com>
The library usage page said >=22 but package.json engines require
>=22.15. Updated both the Requirements section and the comparison
table to match.

Co-authored-by: Miguel Betegón <miguelbetegongarcia@gmail.com>
The proguard.md fragment only covered the uuid subcommand. Added
examples for the upload subcommand including multi-file upload,
UUID override, and validate-only modes.

Co-authored-by: Miguel Betegón <miguelbetegongarcia@gmail.com>
The repository structure diagram omitted the references/ directories
under both .cursor/skills/ and plugins/sentry-cli/skills/. These
contain 26 per-command reference files. Also clarified that SKILL.md
is a symlink while references/ are copies synced by CI.

Co-authored-by: Miguel Betegón <miguelbetegongarcia@gmail.com>
@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://cli.sentry.dev/_preview/pr-1103/

Built to branch gh-pages at 2026-06-15 12:16 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@github-actions

Copy link
Copy Markdown
Contributor

Codecov Results 📊

✅ Patch coverage is 100.00%. Project has 5010 uncovered lines.
✅ Project coverage is 81.2%. Comparing base (base) to head (head).

Coverage diff
@@            Coverage Diff             @@
##          main       #PR       +/-##
==========================================
+ Coverage    81.19%    81.20%    +0.01%
==========================================
  Files          383       383         —
  Lines        26651     26651         —
  Branches     17354     17354         —
==========================================
+ Hits         21638     21641        +3
- Misses        5013      5010        -3
- Partials      1798      1798         —

Generated by Codecov Action

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant